Systems and methods for client-based addressable advertising

ABSTRACT

In accordance with the present invention, systems and methods that allow a television broadcast facility or a headend to insert in-band messages, where the inserted message allow receivers to switch to, insert, or otherwise show addressable advertisements to its viewers.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/312,676 filed Jun. 23, 2014, which is a continuation of U.S. patentapplication Ser. No. 11/939,423, filed Nov. 13, 2007, now U.S. Pat. No.8,763,029, which claims the benefit under 35 U.S.C. § 119(e) of UnitedStates Provisional Patent Application No. 60/858,549, filed Nov. 13,2006 and U.S. Provisional Patent Application No. 60/858,531, filed Nov.13, 2006, all of which are hereby incorporated by reference herein intheir entireties.

FIELD OF THE INVENTION

The present invention generally relates to systems and methods foraddressable advertising. More particularly, the present inventionrelates to a digital program insertion application that allowstelevision distribution networks and cable headends to insert in-bandmessages into feeds to a receiver, where the receiver is capable ofswitching to and/or inserting addressable advertisements into atelevision signal.

BACKGROUND OF THE INVENTION

As the demand for digital programming continues to grow, cabletelevision providers are transitioning from analog cable transmissionsystems to hybrid analog/digital and all-digital cable distributionsystems. With this transition, the current distribution of televisionmessages, such as commercials, from an originator (e.g., an advertiser)or distributor to one or more television broadcast facilities and/orcable television providers, does not easily allow for the insertion ofpersonalized commercials or messages.

Conventional analog advertisement insertion systems distributed programsas NTSC video with analog cue-tones to cable headends. These analogcue-tones provided a signal for a local operator to replace a nationaladvertisement with a local advertisement. For example, upon receivingthe analog cue-tones, advertisement insertion equipment (e.g., splicers,video tape recorders, etc.) played a grouping of thirty second localadvertisements. Near the end of the commercial break, the analogcue-tones received another set of cue-tones to indicate theadvertisement insertion equipment to stop playing and switch back to thenetwork feed. However, these advertisement insertion systems that useanalog cue-tone systems have limited capabilities. For example, in ananalog system, the insertion equipment cannot detect a program change.When a nationally broadcast sporting event goes into overtime, alow-value advertisement is usually played as originally scheduled asopposed to a high-value advertisement that could have been played.

Recently, the Society of Cable Telecommunications Engineers, Inc.(SCTE), Engineering Committee, Digital Video Subcommittee, developed astandard that supports the splicing of MPEG-2 streams for the purpose ofDigital Program Insertion (DPI). This is described, for example, inDocument ANSI/SCTE 35 2004, entitled “Digital Program Insertion CueingMessage for Cable,” which is hereby incorporated by reference herein inits entirety. As described, SCTE 35 2004 describes a technique fornotifying advertisement insertion systems and advertisement splicers ofupcoming splice points and other timing information in the transportstream into which a digitally encoded advertisement or other content canbe inserted. More particularly, an advertisement splicer looks for aparticular message packets that are encoded into an MPEG-2 transportstream and that are identified by a unique packet identifier (PID).These particular message packets indicate when splice points occurwithout the need for special processing. However, the SCTE 35 2004standard does not provide an efficient approach for providing insertioninstructions and/or other commands to receivers.

More particularly, there is a need to provide commands and other datawhich instruct the receiver as to which transport streams to present toa viewer at the receiver. For example, Visible World provides approachesfor creating personalized messages (e.g., commercials, advertisements,etc.) in commonly-assigned, co-pending U.S. patent application Ser. No.09/841,465, filed on Apr. 24, 2001, which is incorporated herein byreference. The Visible World system, as described in U.S. patentapplication Ser. No. 09/841,465, is used to provide multipleadvertisements, multiple media segments, and other media content at thesame time, over multiple programming streams and enables headends and/orreceivers to decide which of the plurality of programming streams topresent to a viewer in a given break in any programming signal. Again,the SCTE 35 2004 standard does not provide an approach for providinginsertion instructions and/or other commands to receivers.

Accordingly, it is desirable to provide systems and methods thatovercome these and other deficiencies of the prior art.

For example, it would be desirable to provide systems and methods thatallow a television broadcast facility or headend to insert messages forreceiver-based digital program insertion.

For example, it would also be desirable to provide systems and methodsthat allow a television broadcast facility or headend to insert markermessages to receivers that provide an approach for the receiver to knowwhere they are in the advertisement or advertising break, and to dealwith error situations (e.g., when no advertising material is present).

SUMMARY OF THE INVENTION

In accordance with the present invention, a digital program insertionsystem is provided. Generally speaking, the system allows a televisionbroadcast facility or headend to insert in-band receiver instructionmessages. Receivers receive these in-band messages, which enable thereceivers to switch to, insert, or otherwise display addressableadvertisements (or segments) to the viewer.

Multiple transport streams from a headend are received at a receiver,where the multiple transport streams carry television programs andaddressable advertisements (or segments of addressable advertisements).Each television program in the transport stream is made up from a set ofindividual data streams—e.g., one or more data streams for the videocomponent of the television program, one or more data streams for theaudio component of the television program, and one or more data streamsfor data (sometimes referred to as “private data”) relating to thetelevision program. The receiver that is receiving a television programlooks up the set of individual data streams associated with that programby using, for example, a Program Map Table (PMT). At least one of theprivate data streams associated with the television program includesthese in-band messages or receiver instructions that provideinstructions for the receiver to display addressable advertisements.These instructions may include, for example, timing instructions (e.g.,when a certain addressable advertisement or media segment should bedisplayed), metadata instructions (e.g., which specific addressableadvertisements or media segments should be displayed), and timelineinstructions (e.g., marker messages that assists the receiver inunderstanding the timeline of an advertisement and the commercial breakand that assist the receiver handle error situations). However, thesereceiver instructions may include any suitable information, such as, forexample, instructions to retrieve media segments from a particular datastream, instructions to construct an addressable advertisement usingmedia segments from particular data streams, and instructions on errorcorrection.

The receiver may use the metadata instructions to determine whichaddressable advertisement (or media segment) to display. The receivermay use the timeline instructions to determine when the addressableadvertisement (or the media segment) should be displayed. For example,if a receiver receiving timing instructions that an upcoming addressableadvertising break is sixty seconds in length and that the addressableadvertising break is approaching in two seconds, the receiver looks tothe previously received metadata to determine which addressableadvertisements to display (e.g., advertisements A and B that are eachthirty seconds in length).

Throughout the addressable advertising break (and sometimes atpredetermined times before and after the advertising or commercialbreak), the system provides marker messages (or timeline messages) inthe transport streams at, for example, regular intervals. These markermessages enable a receiver to understand the timeline within theaddressable advertising break. For example, if the receiver tunes intothe sixty second advertising break from another program (e.g., after aportion of the first advertisements of the advertising break hasplayed), the receiver has missed the timing instructions. Using themarker messages, the receiver determines the next advertisement todisplay—e.g., advertisement B at two seconds into advertisement B afterthe receiver tuned into the advertising break at thirty-two secondsafter the beginning of the break.

In addition, it should be noted that many conventional receivers (e.g.,set-top boxes) do not have a programmable ability to detect whether ornot the receiver is playing the correct audio and/or video at any pointin time. That is, conventional receivers remain inactive or dormantafter tuning to a particular video and/or audio stream. The markermessages of the present invention provide the receiver with an approachfor continuously recognize and identify the timeline for advertisingbreaks or commercial breaks and its associated timing and/or metadatainformation. In addition, the marker messages of the present inventionprovide receivers with an approach for error correction. For example,marker messages may be inserted with a sub-second frequency (e.g., every100 milliseconds). When the receiver is instructed to switch toaddressable advertisement A that is in another transport stream from thestream that is carrying the television program and the addressableadvertisement is not present, the receiver detects the lack of incomingmarker messages and returns to the stream carrying the televisionprogram almost instantaneously as opposed to showing black screens forthe remainder of the advertising break.

In accordance with some embodiments, systems and methods for insertingadvertisements into a digital programming signal that is received at areceiver are provided. A plurality of transport streams from a headendare received at the receiver, where the plurality of transport streamscarry a plurality of television programs, a plurality of addressableadvertisements, a plurality of segments of addressable advertisements,and a plurality of receiver instructions. The plurality of receiverinstructions include at least one of: timing messages, metadatamessages, and marker messages. The receiver uses the timing messages toindicate when an addressable advertisement is to be displayed for anaddressable advertising break. The receiver uses the metadata messagesto indicate at least one of: the addressable advertisement to beselected from the plurality of addressable advertisements and a segmentfrom the plurality of segments. The receiver uses the marker messages toidentify each of the plurality of addressable advertisements, each ofthe plurality of segments, and a relative time position within theaddressable advertising break. The marker messages are received atpredetermined time intervals.

The plurality of receiver instructions are used by the receiver toswitch to the addressable advertisement for the advertising break. Thereceiver then instructs a decoder to start decoding the addressableadvertisement.

Thus, there has been outlined, rather broadly, the more importantfeatures of the invention in order that the detailed description thereofthat follows may be better understood, and in order that the presentcontribution to the art may be better appreciated. There are, of course,additional features of the invention that will be described hereinafterand which will form the subject matter of the claims appended hereto.

In this respect, before explaining at least one embodiment of theinvention in detail, it is to be understood that the invention is notlimited in its application to the details of construction and to thearrangements of the components set forth in the following description orillustrated in the drawings. The invention is capable of otherembodiments and of being practiced and carried out in various ways.Also, it is to be understood that the phraseology and terminologyemployed herein are for the purpose of description and should not beregarded as limiting.

As such, those skilled in the art will appreciate that the conception,upon which this disclosure is based, may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present invention. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present invention.

These together with other objects of the invention, along with thevarious features of novelty which characterize the invention, arepointed out with particularity in the claims annexed to and forming apart of this disclosure. For a better understanding of the invention,its operating advantages and the specific objects attained by its uses,reference should be had to the accompanying drawings and descriptionmatter in which there is illustrated preferred embodiments of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the present invention canbe more fully appreciated with reference to the following detaileddescription of the invention when considered in connection with thefollowing drawings, in which like reference numerals identify likeelements.

FIGS. 1A and 1B are a schematic diagram showing the multiple programtransport streams carrying programs, advertisements, and in-bandreceiver instructions (sometimes referred to herein as “DPI PID”) inaccordance with some embodiments of the present invention.

FIG. 2 is a schematic diagram of an illustrative television system onwhich a digital program insertion application may be implemented inaccordance with some embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In accordance with the present invention, a digital program insertionsystem (sometimes referred to herein as “the system”) is provided. Thesystem allows a television broadcast facility or headend to insertin-band messages to receivers, where receivers may use the in-bandmessage to switch to, insert, and/or otherwise show addressableadvertisements (or segments) to viewers.

Multiple transport streams from a headend are received at a receiver,where the multiple transport streams carry television programs andaddressable advertisements (or segments of addressable advertisements).Each television program in the transport stream is made up from a set ofindividual data streams—e.g., one or more data streams for the videocomponent of the television program, one or more data streams for theaudio component of the television program, and one or more data streamsfor data (sometimes referred to as “private data”) relating to thetelevision program. The receiver that is receiving a television programlooks up the set of individual data streams associated with that programby using, for example, a Program Map Table (PMT). At least one of theprivate data streams associated with the television program includesthese in-band messages or receiver instructions that provideinstructions for the receiver to display addressable advertisements.These instructions may include, for example, timing instructions (e.g.,when a certain addressable advertisement or media segment should bedisplayed), metadata instructions (e.g., which specific addressableadvertisements or media segments should be displayed), and timelineinstructions (e.g., marker messages that assists the receiver inunderstanding the timeline of an advertisement and the commercial breakand that assist the receiver handle error situations). However, thesereceiver instructions may include any suitable information, such as, forexample, instructions to retrieve media segments from a particular datastream, instructions to construct an addressable advertisement usingmedia segments from particular data streams, and instructions on errorcorrection.

The receiver may use the metadata instructions to determine whichaddressable advertisement (or media segment) to display. The receivermay use the timeline instructions to determine when the addressableadvertisement (or the media segment) should be displayed. For example,if a receiver receiving timing instructions that an upcoming addressableadvertising break is sixty seconds in length and that the addressableadvertising break is approaching in two seconds, the receiver looks tothe previously received metadata to determine which addressableadvertisements to display (e.g., advertisements A and B that are eachthirty seconds in length).

Throughout the addressable advertising break (and sometimes atpredetermined times before and after the advertising or commercialbreak), the system provides marker messages (or timeline messages) inthe transport streams at, for example, regular intervals. These markermessages enable a receiver to understand the timeline within theaddressable advertising break. For example, if the receiver tunes intothe sixty second advertising break from another program (e.g., after aportion of the first advertisements of the advertising break hasplayed), the receiver has missed the timing instructions. Using themarker messages, the receiver determines the next advertisement todisplay—e.g., advertisement B at two seconds into advertisement B afterthe receiver tuned into the advertising break at thirty-two secondsafter the beginning of the break.

In addition, it should be noted that many conventional receivers (e.g.,set-top boxes) do not have a programmable ability to detect whether ornot the receiver is playing the correct audio and/or video at any pointin time. The marker messages of the present invention provide thereceiver with an approach for continuously recognize and identify thetimeline for advertising breaks or commercial breaks and its associatedtiming and/or metadata information. In addition, the marker messages ofthe present invention provide receivers with an approach for errorcorrection. For example, marker messages may be inserted with asub-second frequency (e.g., every 100 milliseconds). When the receiveris instructed to switch to addressable advertisement A that is inanother transport stream from the stream that is carrying the televisionprogram and the addressable advertisement is not present, the receiverdetects the lack of incoming marker messages and returns to the streamcarrying the television program almost instantaneously as opposed toshowing black screens for the remainder of the advertising break.

It should be noted that the Society of Cable TelecommunicationsEngineers, Inc. (SCTE), Engineering Committee, Digital VideoSubcommittee, developed a standard that supports the splicing of MPEG-2streams for the purpose of Digital Program Insertion (DPI). This isdescribed, for example, in Document ANSI/SCTE 35 2004, entitled “DigitalProgram Insertion Cueing Message for Cable,” which is herebyincorporated by reference herein in its entirety. In accordance withsome embodiments of the present invention, systems and methods forproviding in-band receiver instructions for addressable advertising maybe provided. Generally speaking, these in-band messages are inserted atthe headend and received by the receiver (e.g., a set-top box) and maybe implemented as an extension of the SCTE 35 2004 standard. It shouldbe noted that, unlike the in-band messages of the present invention, themessages provided by the SCTE 35 2004 standard (e.g., splice_null,splice_schedule, splice_insert, splice_signal, bandwidth_reservation)are inserted by the programmer and received (and subsequently strippedout) by advertisement splicers in headends.

It should also be noted that although the embodiments are described asbeing implemented on a set-top box, this is only illustrative. Thesystems and methods may be implemented on any suitable receiver, such asa Switched Digital Video (SDV) headend, a personal computer, a portablecomputer, a cellular phone, or a personal digital assistant (PDA), toprovide such features.

The following protocols and their accompanying descriptions providedetailed examples of the implementation of the systems and methods ofthe present invention.

As shown below in Table 1, the system allows the headend to insertreceiver instructions. For example, as described herein, the headend mayuse the system to insert client_break, client_trigger, client_splice,and client_marker instructions into the splice information table(splice_info_section) of an SCTE 35 message. It should be noted thatinserting these receiver instructions into the splice information tableof an SCTE 35 message implements the receiver instruction protocol as anextension of the SCTE 35 protocol. Although the embodiments aredescribed as being implemented as an extension of the SCTE 35 protocol,this is only illustrative.

TABLE 1 Section Element bits Type Value Encrypted splice_info_section{  Table_id 8 uimsbf 0xFC 0   section_syntax_indicator 1 bslbf 0 1  private_indicator 1 bslbf 0   reserved 2 bslbf 0   section_length 12uimsbf <4094   2   protocol_version 8 uimsbf 0 3   encrypted_packet 1bslbf 0 4   encryption_algorithni 6 uimsbf 0   pts_adjustment 33 uimsbf0 5, 6, 7, 8   cw_index 8 uimsbf 0xFF 9   Reserved 12 bslbf 0 10, 11  splice_command_length 12 uimsbf 12    splice_command_type 8 uimsbf E13   if (splice_command_type==0x00) 14      splice_null( ) E   if(splice_command_type==0x04)     splice_schedule( ) E   if(splice_command_type==0x05)     splice_insert( ) E   if(splice_command_type=−0x06)     splice_signal( ) E   if(splice_command_type-0x07)     bandwidth_reservation( ) E   if(splice_command_type==0x24)     client_break( ) E   if(splice_command_type==0x25)     client_trigger( ) E   if(splice_conmand_type==0x26)     client_splice( ) E   if(splice_command_type==0x27)     client_marker( ) E  descriptor_loop_length 16 uimsbf E   for(i=0;i<N1;i++)    splice_descriptor( ) E   for(i=0;i<N2;i++)     alignment_stuffing 8bslbf E   if(encrypted_packet)     E_CRC_32 32 rpchof E   CRC_32 32rpchof }

As shown in Table 2 below, the system provides the client_break messageas a metadata message to instruct the receiver on which addressableadvertisements to show in an upcoming break. The client_break message isgenerally inserted at a predetermined time before the commercial break(e.g., five seconds before, ten seconds before, etc.). It should benoted that the same client_break message may be inserted multiple timesin sequence with little spacing between successive messages to handlethe receiver from missing the client_break message.

TABLE 2 Section Element Bits Type client_break{   break_id 32 uimbsf  start_time (in msec from now, pos or neg) 32 imsbf   expiration_time(in msec from now, pos) 32 uimbsf   num_positions 8 uimbsf  for(i=0;i<num_positions;i++){ uimbsf     duration (of position, inmsec) 32 uimbsf     ad_id (0=not addressable) 16 uimbsf     ad_source(1=inter/2=intra) 4 uimbsf     num_media_types (always 3 for now) 4uimbsf     for (j=0;j<num_media_types;j++){ uimbsf       media_type_id(0=DPI protocol) 4 uimbsf       num_pid_ranges 12 uimbsf      for(k=0;k<num_pid_ranges; k++){         Offset 13 uimbsf        num_pids 11 uimbsf       }       num_slots 8 uimbsf      for(k−0;k<num_slots;k++){ uimbsf         num_options 16 uimbsf        duration (of slot, in msec) 32 uimbsf       }     }   }  frequency (in Mhz, mid-band. Ex: 57 MHz) 16 uimbsf }

In this embodiment, the client_break message includes the followingfields:

break_id—This field is generally unique for each break, for example, toavoid multiple breaks with the same break_id being active in thereceiver. This field may be managed and assigned by the advertisementinserter in the headend.

start_time—This field indicates the approximate time until the start ofthe break.

expiration_time—This field is generally provided a few seconds after thecommercial break has ended and is used by the targeted engine as atimeout instruction to create a playout report. For example, for a 120second commercial or network break, the expiration_time field may be setto 125 seconds. After the time has expired, no additional messages arepermitted on the television program for that break. It should be notedthat, if this value is too short, it may lead to race conditions withinthe receiver. However, if the value of this field is too long, thereceiver is delayed in creating and sending a playout report, which maylead to a loss of the playout report (e.g., due to receives rebooting inthe meantime).

num_positions—This field indicates the number of positions (e.g.,advertisements, media segments, advertising segments, or other media) inthe break.

ad_id—For each position, this field provides a unique identifier for theadvertisement in that position. This field is used by the receiver todetermine the sequence of media segments to display for thatadvertisement (e.g., this sequence may be distributed out-of-band aheadof time). It should be noted that, in some embodiments (e.g., theVisible World system), advertisements may consist of a sequence ofseparate audio, video, and/or other media segments that are to bedisplayed or constructed in a particular sequence to show the fullcompleted advertisement. In some embodiments, an ad_id set to 0 is usedfor an advertisement that is copied from the stream carrying thetelevision program, which is not an addressable advertisement.

num_media types—For each position, this field indicates the number ofmedia types. For example, num_media types may be set to 3 to indicatethe receiver instruction protocol, Video, and Audio media types. Inanother example, Secondary Audio Programming (SAP) may be supported asan additional media type.

media_type_id—For each position and each media type, this field providesan identifier for the media type. For example, a media_type_id set to 0indicates the receiver instruction protocol, a media_type_id set to 1indicates Video, and a media_type_id set to 2 indicates Audio.

num_pid_ranges—For each position and each media type, this fieldindicates the number of PID ranges. PID ranges are generally used to mapmetadata instructions to actual media streams (PIDs) of the addressableadvertisements.

num_slots—For each position and each media type, this field indicatesthe number of micro switch points within the advertisement. A microswitch point (sometimes referred to as a “slot”) refers to a transitionbetween two media segments within an addressable advertisement. Forexample, if an addressable advertisement is thirty seconds long thatincludes a generic twenty second beginning portion of the addressableadvertisement, and multiple different ten second end-tags or endings,then there is one micro switch point that occurs twenty seconds into theadvertisement.

num_options—For each position, each media type and each micro switchpoint, this field indicates the number of different options (PIDs) tochoose from for the switch point.

duration—For each position, each media type, and each micro switchpoint, this field indicates the length of the media segment (e.g., inmilliseconds). The duration fields add up to the total positionduration. The receiver uses the duration field to set a timeout to tuneback to the network (e.g., if the client_trigger to return to thenetwork feed is missed).

It should be noted that the frequency field (mid-band in megahertz)indicates the frequency of the commercial feeder. The commercial feederis the transport stream that contains the addressable advertisements (orsegments). It should also be noted that the frequency for the televisionprogram may be different from the frequency for the commercial feeder,or it may be the same (depending on whether the addressableadvertisements are carried in separate transport streams or not.

As shown in Table 3 below, the system provides the client_triggermessage as a timing message for the receiver to determine when to switchto an addressable advertisement. It should be noted that this embodimentincludes two different types of timing messages: one to instruct thereceiver to change frequency to an addressable advertisement(client_trigger), and one to instruct the receiver to switch streamswithin the same transport stream to an addressable advertisement orsegment (client_splice). The client_trigger message is generallyinserted at a predetermined time before the advertisement (e.g., twoseconds before, five seconds before, etc.).

TABLE 3 Section Element bits Type client_trigger{   break_id 32 uimbsf  pos_in_break (1=start of first, 0=end of last) 8 uimbsf  relative_time (in msec) 32 Uimbsf }

In this embodiment, the client_trigger message includes the followingfields:

break_id—This field is generally unique for each break and identifiesthe break to which this trigger message belongs.

pos_in_break—This field indicates the position in the upcomingadvertising break. For example, trigger messages with a position of 1are inserted on the program and represent the first advertisement in abreak.

relative_time—This field indicates the time until the first byte of theaddressable advertisement on the advertisement feeder is received or thefirst byte of the program after the break is received.

As shown in Table 4 below, the system provides the client_splice messageas another type of timing message. The client_splice is used to informthe receiver of micro switches, where a seamless transition between twomedia segments is required (PID switching within the same transportstream). The client_splice message is generally inserted such that theswitch should be made within a given number of milliseconds (e.g., lessthan or equal to fifty milliseconds) of the point in the stream to avoida video and/or an audio glitch. It should be noted that, similar to theclient_break message, the client_splice message may be inserted multipletimes in sequence with little spacing between successive messages tohandle the receiver from missing the client_splice message.

TABLE 4 Section Element bits Type client_splice{   pos_num (1=first pos.in break,...) 8 uimsbf   media_type (1=vid, 2=aud) 4 uimsbf   seq_num(1=end of first, 0=end of last) 12 uimsbf   pos_num_other 8 uimsbf  media_type_other 4 uimsbf   seq_num_other 12 uimsbf }

In this embodiment, the client_splice message includes the followingfields:

pos_num—This field indicates the position in a particular advertisementbreak. For example, a local break of 60 seconds may have between 1 and 4positions (addressable advertisements) in it, where the positions startscounting from 1.

media_type—This field identifies the media for which the switch isintended. For example, a media_type set to 1 may indicate that video isto be switched, while a media_type set to 2 may indicate that audio isto be switched.

seq_num—This field identifies the sequence number of the switch message(micro switch point). For example, a seq_num of 0 indicates the lastmicro switch point in the stream to the receiver.

As shown in Table 5 below, the system provides the client_marker messageas a timeline (or marker) message. In some embodiments, the receiveruses client_marker messages for error-detection. The client_markermessage allows the receiver to detect if it is on the wrong frequency orif the receiver has otherwise switched to the wrong commercial (e.g., bydetecting the incoming client_marker messages present in theadvertisement the receiver has switched to). If, for example, thereceiver detects that the commercial feeder is not present, that anaddressable advertisement is not present on the commercial feeder, orthat the receiver switched to the wrong addressable advertisement, thereceiver tunes back to the network as soon as client_marker messages arenot received (or if the wrong client_marker messages are received)within a predetermined time (e.g., after a few milliseconds). It shouldbe noted that the client_marker message includes the same fields as theabove-described client_splice message. In addition, the client_splicemessage includes an elapsed_time field for each media type, whichindicates the time since the previous micro switch point for that mediatype (the start of the current micro switch point in the position beingplayed). The elapsed_time field may be used for tracking or debuggingpurposes.

TABLE 5 Section Element bits Type client_marker{   Pos_num_1 (1=firstpos in break,...) 8 uimsbf   media_type_1 (1=vid, 2=aud) 4 uimsbf  Seq_num_1 (1=first slot in pos,...) 12 uimsbf   elapsed_time_1 (inmsec from start of slot). 32 uimsbf   Pos_num_2 8 uimsbf   media_type_24 uimsbf   Seq_num_2 12 Uimsbf   elapsed_time_2 32 Uimsbf }

Marker messages are inserted throughout the addressable advertisingbreak (and sometimes starting a few seconds before the start of anadvertising break and ending a few seconds after the end of theadvertising break) with a fixed, sub-second frequency. For example,marker messages may be inserted with a sub-second frequency of every 100milliseconds. It should be noted that other frequency values may beused.

In some embodiments, marker messages (e.g., client_marker of Table 5)may be used by the receiver to tune to the correct addressableadvertisement. For example, if the receiver tunes to a channel at agiven time after the trigger message (e.g., client_trigger message) hasbeen transmitted, the receiver receives the next marker message, whichsynchronizes the receiver and provides the information to the receiverto tune to the correct addressable advertisement.

In other embodiments, marker messages may be present (during the break)in both the television program as well as in the addressableadvertisements. This enables the receiver that tunes into an addressableadvertising break, to still switch to (or otherwise display) the correctaddressable advertisement. For example, if the receiver tunes into thesixty (60) second advertising break from another program (e.g., after aportion (32 seconds) of the advertising break has played), the receiverhas missed the timing instructions. Using the marker messages, thereceiver determines the next advertisement to display—e.g.,advertisement B at two seconds into advertisement B after the receivertuned into the advertising break at thirty-two (32) seconds after thebeginning of the break.

FIGS. 1A and 1B provide an illustrative example of program and targetedadvertisements with receiver instructions in accordance with someembodiments of the present invention. As shown in FIGS. 1A and 1B, theprograms and their accompanying content (e.g., an audio PID, a videoPID, a receiver instruction PID, a Program Map Table, EntitlementControl Messages, etc.) are transmitted on a multiple program transportstream (MPTS) 100, The addressable advertisements and their associatedindividual data streams (e.g., one or more audio PIDs, one or more videoPIDs, a receiver instruction PID, a Program Map Table, etc.) aretransmitted on a separate multiple program transport stream 110 (e.g., acommercial feeder transport stream).

It should be noted that although FIGS. 1A and 1B describe theintra-transport stream switching cases, where the targeted advertisement(commercial feeder transport stream 110) is on a separate QAM, this isonly illustrative. The application and its DPI messages may be used ininter-transport stream switching, where the targeted advertisement(commercial feeder transport stream) is on the same transport stream asthe network. Alternatively, the targeted advertisements may bedownloaded to a digital video recorder (DVR) or any other suitablerecording device. The application and its DPI messages may be used toswitch between a transport stream and the recording device.

As shown in FIGS. 1A and 1B, the commercial break in the network feed isoverlaid or replaced with two targeted advertisements in theadvertisement feeder multiple program transport stream (transport stream110). Within each MPTS 100 and 110, multiple in-band client-DPI(receiver instruction) messages are inserted. For example, theclient_break message 120 is inserted into the MPTS 100 to signal thereceiver of an upcoming addressable advertising break. Client_breakmessage 120 may be inserted in the MPTS about five to ten seconds priorto the receipt of a client_trigger message 130.

Client_trigger message 130 informs the receiver of the start of a newadvertisement in a break or indicates the start of the televisionprogram when the last advertisement in the break has played. In responseto receiving the client_trigger message 130, the receiver switches fromthe MPTS to the separate transport stream 110. Separate transport stream110 includes multiple client_marker messages 140, multiple client_splicemessages 150 for different media types (e.g., video, audio, etc.), andmultiple client_trigger messages 160. Upon receiving the lastclient_trigger message—e.g., T(0), which indicates the start of thetelevision program after the last advertisement or commercial in thebreak has played, the receiver tunes back to the television program onthe MPTS.

An illustrative arrangement that support the insertion of in-bandclient-DPI (receiver instruction) messages is shown in FIG. 2. It shouldbe noted that other arrangements may also be used.

FIG. 2 is a schematic diagram of an illustrative television system onwhich the application may be implemented in accordance with someembodiments of the present invention. Content, such as televisionprograms and other media may be provided from one or more sources toheadend 200. Headend 200 may be a cable system headend, a satellitedistribution center, a television broadcast facility, or any othersuitable facility for distributing content to viewers at one or morereceivers 210.

It should be noted that there are generally numerous headends 200 ortelevision broadcasting facilities in a television system, but only oneis shown in FIG. 2 to avoid overcomplicating the drawings.

Receiver 210 maybe, for example, a set-top box, a television, a SwitchedDigital Video (SDV) head-end, a recording device, a personal computer, alaptop computer, a personal digital assistant, a cellular telephone, orany other suitable platform. Receiver 210 may receive content, such astelevision programs, from headend 200 over communications link 220.Receiver 210 may also transmit signals to headend 200 overcommunications link 220. Communications link 220 may be cables or otherwired connections, or wireless connections for broadcast or satellitelinks.

The receiver 210 may perform one or more of the following functions:

-   -   when the receiver is tuned (by viewer) to a television program        that is enabled for the addressable advertising system, it can        detect the presence of a data stream for receiver instructions        (client-DPI PID) and start monitoring the messages in it;    -   receive client_break messages and store the metadata in memory        for use at a later time (this metadata allows the receiver to        decide which advertisements to show for an upcoming break);    -   receive client_trigger messages and use them to switch/tune to        an addressable advertisement in another transport stream at the        beginning of an upcoming break (based on metadata previously        extracted and stored from the client_break message);    -   receive client_splice messages and use them to seamlessly switch        to media segments within a transport stream, these can be micro        switches between two media segments in the same advertisement,        or between two separate advertisements;    -   receive client_trigger messages that indicate the end of        addressable advertising elements in the commercial feeder, and        use it to switch or tune back to the television program; and/or    -   send reporting (playout) data back to the headend (within a        predetermined amount of time after the end of the break,        typically few seconds).

Accordingly, systems and methods that allow a television broadcastfacility or headend to insert receiver instructions are provided.

It is to be understood that the invention is not limited in itsapplication to the details of construction and to the arrangements ofthe components set forth in the following description or illustrated inthe drawings. The invention is capable of other embodiments and of beingpracticed and carried out in various ways. Also, it is to be understoodthat the phraseology and terminology employed herein are for the purposeof description and should not be regarded as limiting.

As such, those skilled in the art will appreciate that the conception,upon which this disclosure is based, may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present invention. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present invention.

Although the present invention has been described and illustrated in theforegoing exemplary embodiments, it is understood that the presentdisclosure has been made only by way of example, and that numerouschanges in the details of implementation of the invention may be madewithout departing from the spirit and scope of the invention.

What is claimed is:
 1. A method comprising: receiving, from a computingdevice, a first transport stream that includes video and audio contentassociated with a television program; detecting, in the first transportstream, a metadata message that indicates a plurality of segments ofaddressable advertisements to be displayed during an addressableadvertising break and a time position of each segment within theaddressable advertising break; detecting, in the first transport stream,a timing message instructing the receiver to tune to a second transportstream; receiving, from the computing device, the second transportstream in response to the timing message in order to enable display ofeach segment indicated by the metadata message; detecting, in the secondtransport stream, a plurality of marker messages at predetermined timeintervals that each indicate a relative time position within theaddressable advertising break; and determining, based on each relativetime position within the addressable advertising break indicated by theplurality of marker messages, whether the time position of each segmentis correct.
 2. The method of claim 1, further comprising: on a conditionthat a marker message of the plurality of marker messages is notdetected during a predetermined time interval, determining that an erroroccurred in the second transport stream.
 3. The method of claim 2,further comprising: on a condition that an error occurred in the secondtransport stream, receiving the first transport stream to enable displayof the television program.
 4. The method of claim 1, further comprising:on a condition that the time position of each segment is not correct,determining that an error occurred in the second transport stream. 5.The method of claim 4, further comprising: on a condition that an erroroccurred in the second transport stream, receiving the first transportstream to enable display of the television program.
 6. The method ofclaim 1, further comprising: detecting, in the second transport stream,a second timing message that indicates a second plurality of segments ofaddressable advertisements to be displayed during the addressableadvertising break; and switching to the second plurality of segments ofaddressable advertisements within the second transport stream to enabledisplay of the second plurality of segments of addressableadvertisements.
 7. The method of claim 1, wherein the plurality ofmarker messages further indicates a frequency associated with eachrelative time position within the addressable advertising break andwherein the metadata message further indicates a frequency associatedwith each segment.
 8. The method of claim 7, further comprising:determining, based on the plurality of marker messages, whether thefrequency associated with each relative time position within theaddressable advertising break matches the frequency associated with eachsegment indicated by the metadata message.
 9. The method of claim 1,wherein the metadata message further indicates a start time and durationof the addressable advertising break and a number of segments of theplurality of segments of addressable advertisements to be displayedduring the addressable advertising break.
 10. A receiver configured to:receive, from a computing device, a first transport stream that includesvideo and audio content associated with a television program; detect, inthe first transport stream, a metadata message that indicates aplurality of segments of addressable advertisements to be displayedduring an addressable advertising break and a time position of eachsegment within the addressable advertising break; detect, in the firsttransport stream, a timing message instructing the receiver to tune to asecond transport stream; receive, from the computing device, the secondtransport stream in response to the timing message in order to enabledisplay of each segment indicated by the metadata message; detect, inthe second transport stream, a plurality of marker messages atpredetermined time intervals that each indicate a relative time positionwithin the addressable advertising break; and determine, based on eachrelative time position within the addressable advertising breakindicated by the plurality of marker messages, whether the time positionof each segment is correct.
 11. The receiver of claim 10, furtherconfigured to: on a condition that a marker message of the plurality ofmarker messages is not detected during a predetermined time interval,determining that an error occurred in the second transport stream. 12.The receiver of claim 11, further configured to: on a condition that anerror occurred in the second transport stream, receiving the firsttransport stream to enable display of the television program.
 13. Thereceiver of claim 10, further configured to: on a condition that thetime position of each segment is not correct, determining that an erroroccurred in the second transport stream.
 14. The receiver of claim 13,further configured to: on a condition that an error occurred in thesecond transport stream, receiving the first transport stream to enabledisplay of the television program.
 15. The receiver of claim 10, furtherconfigured to: detecting, in the second transport stream, a secondtiming message that indicates a second plurality of segments ofaddressable advertisements to be displayed during the addressableadvertising break; and switching to the second plurality of segments ofaddressable advertisements within the second transport stream to enabledisplay of the second plurality of segments of addressableadvertisements.
 16. The receiver of claim 10, wherein the plurality ofmarker messages further indicates a frequency associated with eachrelative time position within the addressable advertising break andwherein the metadata message further indicates a frequency associatedwith each segment.
 17. The receiver of claim 16, further configured to:determining, based on the plurality of marker messages, whether thefrequency associated with each relative time position within theaddressable advertising break matches the frequency associated with eachsegment indicated by the metadata message.
 18. The receiver of claim 10,wherein the metadata message further indicates a start time and durationof the addressable advertising break and a number of segments of theplurality of segments of addressable advertisements to be displayedduring the addressable advertising break.
 19. A method comprising:receiving, from a computing device, a plurality of transport streamsthat include video and audio content associated with a televisionprogram, a plurality of segments of addressable advertisements, and aplurality of receiver instructions; detecting, in a first transportstream of the plurality of transport streams, a first receiverinstruction that indicates at least one segment of the plurality ofsegments of addressable advertisements to be displayed during anaddressable advertising break and a time position of the at least onesegment within the addressable advertising break; detecting, in thefirst transport stream, a second receiver instruction instructing thereceiver to display a second transport stream of the plurality oftransport streams during the addressable advertising break; displayingthe second transport stream in response to the second receiverinstruction; detecting, in the second transport stream, a plurality ofthird receiver instructions at predetermined time intervals that eachindicate a relative time position within the addressable advertisingbreak; and determining, based on each relative time position within theaddressable advertising break indicated by the plurality of thirdreceiver instructions, that the time position of the at least onesegment within the addressable advertising break is correct.
 20. Themethod of claim 19, further comprising: on a condition that the timeposition of the at least one segment within the addressable advertisingbreak is not correct, determining that an error occurred in the secondtransport stream.